/*LICENSE_BEGIN
 * ******************************************************************
 * Copyright 2006 by the Dainamite Robocup-Team at the
 * DAI-Labor, TU-Berlin (www.dai-labor.de)
 * 
 * Members of Dainamite are:
 * Holger Endert
 * Robert Wetzker
 * Thomas Karbe
 * Axel Heßler
 * Philippe Bütter
 * Felix Brossmann
 * 
 * Licensed under the GNU GPL (General Public License) Free Software 
 * License, Version 2. You may use this file only in compliance with 
 * the License. You may obtain a copy of the License at:
 * 
 * http://www.fsf.org/licensing/licenses/gpl.txt
 * ******************************************************************
LICENSE_END*/
package robocup.component.worldmodel;

import robocup.component.infotypes.PlayModeInfo;
import robocup.component.infotypes.PlayerSayInfo;
import robocup.component.infotypes.RefereeInfo;
import robocup.component.infotypes.SenseBodyInfo;
import robocup.component.infotypes.VisualInfo;

/**
 * Interface for commen Model classes. Reminds you to implement all update
 * methods. (or to document why you didn't :-))
 * 
 * @author wetzker
 * 
 */
public interface IModel {

	/**
	 * update model after BS arrival.
	 * 
	 * @param info
	 */
	public void update(SenseBodyInfo info);

	/**
	 * update model after VI arrival.
	 * 
	 * @param info
	 */
	public void update(VisualInfo info);

	/**
	 * update model after referee info arrival.
	 * 
	 * @param info
	 */
	public void update(RefereeInfo info);

	/**
	 * update model after play mode info arrival.
	 * 
	 * @param info
	 */
	public void update(PlayModeInfo info);

	/**
	 * update model after player say info arrival.
	 * 
	 * @param info
	 */
	public void update(PlayerSayInfo info);

}
